package com.iqiyi.pps.epg.core.service.program;

import com.iqiyi.pps.epg.api.model.web.program.TProgramDirector;
import com.iqiyi.pps.epg.api.model.web.program.TProgramDirectorLog;
import com.iqiyi.pps.epg.api.model.web.program.TProgramDirectorLogPage;
import com.iqiyi.pps.epg.api.model.web.program.TProgramDirectorPage;
import com.iqiyi.pps.epg.api.model.web.query.TFilter;
import com.iqiyi.pps.epg.api.model.web.query.TPage;
import com.iqiyi.pps.epg.core.model.program.ProgramDirector;
import com.iqiyi.pps.epg.core.model.program.ProgramDirectorEffect;
import com.iqiyi.pps.epg.core.model.program.ProgramDirectorLog;
import org.hibernate.criterion.Criterion;

import java.util.List;

/**
 * Created by jiegang on 2017/3/2.
 */
public interface IProgramDirectorService {
    int addProgramDirector(ProgramDirector pd) ;

    long addProgramDirectorLog(ProgramDirectorLog pdLog );

    void updateProgramDirector(ProgramDirector pd);

    void updateCurResourceId(int directorId,int  resourceId);

    void updateMainResourceId(int directorId, int mainResourceId);

    TProgramDirectorPage findProgramDirector(TPage page, TFilter filter, boolean fullMode);

    TProgramDirectorLogPage findProgramDirectorLog(TPage page, TFilter filter);

    TProgramDirector transToTProgramDirectorSimple(ProgramDirector tempData);

    TProgramDirector transToTProgramDirector(ProgramDirector tempData);

    TProgramDirectorLog transToTProgramDirectorLog(ProgramDirectorLog tempData);

    ProgramDirector getByProgramQipuId(long programQipuId);

    ProgramDirector getById(int id);

    List<ProgramDirector> findProgramDirectorList(List<Criterion> criterionList );

    int addProgramDirectorEffect(ProgramDirectorEffect programDirectorEffect);
    int editProgramDirectorEffect(ProgramDirectorEffect programDirectorEffect);
    List<ProgramDirectorEffect> getProgramDirectorEffectList(TFilter filter);
    ProgramDirectorEffect getEffectById(int id);

    List<ProgramDirectorEffect> createDefaultEffects(int directorId, long programQipuId);

}

